The present disclosure relates generally to data communication over a plurality of networks that comply with the Open System Interconnection (OSI) model. More particularly the disclosure relates to optimizing communication paths between a source and destination of a flow.
In networks, data is typically exchanged between communicating devices in the form of frames. A frame is a digital data transmission unit on the layer 2 of the Open System Interconnection (OSI) reference model, for example. It is used for data exchange between two points via a direct physical or logical link. The frame can include information on the communicating devices. Information such as, but not limited to: a source MAC (Media Access Control) address (SA), a destination MAC address (DA) in an Ethernet protocol frame. The frame can also include information on the specific connection defined between these two communicating devices: the Data Link Connection Identifier in the Frame Relay (FR) protocol, for example. Additional information on the communicating devices can reside in the headers of higher OSI layers such as, but not limited to: source and destination IP addresses in an Internet Protocol (IP) layer 3 protocol, source and destination ports in a layer 4 Transmission Control Protocol (TCP) protocol, etc.
In the present description, a flow is a sequence of frames associated with a single logical connection between communicating devices. A flow can be defined by a one-to-one relation between two communicating devices (uni-cast) or by a one-to-many relation, between one to two or more communicating devices (multi-cast and broadcast). A flow is identified for each data frame based on various headers' fields combinations. The headers' fields combination can be formed by selecting all fields or specific fields within the headers of the multiple layers protocols. An exemplary headers' fields combination for identifying a flow frame can be a source MAC address field and a destination MAC address field in the header of the layer 2 Ethernet protocol together with a source port field and a destination port field of the layer-4 TCP header. Another example of a flow can be associated with a specific TCP connection. In this case, the flow frames can be identified using the quartet of the fields: source IP address, destination IP address, source port and destination port, for example.
A session is a series of communications in the OSI application layer, initiated by a user or a device. A Point to Point Protocol (PPP) session is initiated when a user logs into the network with a user-id and a password, for example. A Dynamic Host Configuration Protocol (DHCP) session is initiated when a user device obtains an IP address from the network. A user may initiate multiple sessions on the same device. For example, a user may be using a computer that is downloading a Video on Demand movie in a first session and the user may also be browsing the WWW (World Wide Web) in a second session. Note that a session consists of one or more flows depending on the application. An HTTP browsing session to a particular web page consists of multiple TCP connections (multiple flows) downloading the page objects, for example. Real Time Streaming Protocol (RTSP) session may include several UDP flows that can originate from multiple servers is another example for a complex network session.
A layer 2 switch can use information in the layer 2 protocol headers to make traffic forwarding decisions. Such device is usually called a switch in Ethernet traffic. Using network topology information, smart switches can learn which ports have which end stations attached to it, by recording the Ethernet MAC addresses of the ingress packets. Using this information along with Layer 2 switches ability to use single dimension classification to parse the layer 2 headers of all frames and to classify the frames, enables smart layer 2 switches to forward frames out of the ports that it knows the end station is connected to. Frames with unknown destination MAC addresses, such as the case with frame destined to station addresses that have not yet been learned, are flooded out of every port in the switch forcing the recipient to reply. This allows the switch to learn the relevant MAC address, which is the source address on the reply frame. Many smart layer 2 switches offer the ability to configure smart services such as Quality of Service (QoS), bandwidth shaping, or Virtual Local Area Network (VLAN) membership based on the layer-2 information of the frames and the network topology.
Current type of smart switches such as, but not limited to Hammerhead Systems HSX 6000, or Alcatel-Lucent 7450 Ethernet Service Switch, can be remotely configured by an external management entities. However, there are no remotely controlled supporting admission mechanisms that are capable of communicating with a forwarding device for delivering control information on a per session basis or per flow basis. Meaning there is no method that verifies per each flow/session if the path chosen (forward information) is optimal.
A Deep Packet Inspection (DPI) Device such as but not limited to Cisco SCE or Allot NetEnforcer is an IP network equipment which is not an endpoint of a communication. DPI device has the ability to look at Layer 2 through Layer 7 of the OSI model, this includes headers and data protocol structures as well as the actual payload of the packets. DPI device identifies and classify the traffic based on a signature database that includes information extracted from the data part of a packet, allowing finer control than classification based only on header information. DPI devices can identify packet flows (rather than packet-by-packet analysis), allowing control actions based on accumulated flow/session information. DPI uses multi dimension classification are computational intensive, consume a lot of power and expensive while generally delivering more than an order magnitude slower throughput.